1. Field of the Invention
The present general inventive concept relates to a method of multi-path trellis coded quantization, and more particularly, to a method of multi-path trellis coded quantization which can be used in a speech coding system, and a quantizer using the method.
2. Description of the Related Art
For high quality speech coding in a speech coding system, it is very important to efficiently quantize linear predictive coding (LPC) coefficients indicating a short interval correlation of a speech signal. In an LPC filter, an optimal LPC coefficient value is obtained so that after an input voice signal is divided into frame units, energy of a prediction error for each frame is minimized. An LPC filter of an adaptive multi-rate wideband (AMR-WB) speech codec, which is standardized as a wideband speech codec for an International Mobile Telecommunications-2000 (IMT-2000) system in a 3rd Generation Partnership Project (3GPP), is a 16th all-poll filter, and in this case many bits must be allocated for quantization of 16 LPC coefficients.
Even for quantization of 10 LPC coefficients, many bits must be allocated. For example, IS-96A Qualcomm code excited linear prediction (QCELP), which is a speech coding method used in a code division multiple access (CDMA) mobile communications system, uses 25% of a total number of bits for LPC quantization, and more specifically, the AMR-WB speech codec uses from a maximum 27.3% to a minimum 9.6% of a total number of bits for LPC quantization. So far, many methods for efficient quantization of LPC coefficients have been developed and are actually being used in voice compression apparatuses. One of these methods, direct quantization of LPC filter coefficients, has problems in that an LPC filter is too sensitive to quantization errors of LPC coefficients, and stability of the LPC filter after quantization is not guaranteed. Accordingly, LPC coefficients should be converted into other parameters having a good quantization characteristic and then quantized, i.e., reflection coefficients, and line spectrum frequency (LSF) coefficients. Moreover, most standard speech coders utilize an LSF quantization speech coding method since the LSF coefficients are closely associated with speech signal frequency properties.
Also, more effective quantization may be accomplished when correlations among frames of the LSF coefficients are utilized, i.e., an LSF of a current frame is predicted from LSF information of a past frame, and a predicted error between the current and past frames is quantized, instead of an LSF of a current frame being directly quantized. Because LSF coefficient values are closely associated with speech signal frequency properties which are predictable over time, a comparatively larger prediction gain may be obtained.
As for a method of filtering the LSF coefficient values, there are methods using an auto-regressive (AR) filter and a moving average (MA) filter. The AR filter has a good prediction performance, however, the AR filter suffers from a transmission error effect resulting from a receiving station continuously propagating a transmission error throughout a frame progression. The MA filter also has a comparatively inferior prediction performance, however the transmission error effect is limited. Subsequently, a prediction method of the LSF coefficient values using the MA filter is utilized in wireless mobile communication circumstances, where transmission errors frequently occur, as a speech coder, e.g. adaptive multi-rate (AMR), AMR-WB, and selectable mode vocoder (SMV). Also, besides the LSF coefficient value prediction among frames, a prediction method using correlation among adjacent LSF constituent values within a single frame has been developed where the LSF coefficient values always repeat an ordering property, so that performance of quantization may be maximized when the above described method is utilized.
Methods of quantization of prediction error of LSF coefficients can be divided into two types, scalar quantization methods and vector quantization methods. At present, the vector quantization method is more widely used than the scalar quantization method. Although the vector quantization method uses more bits, it provides better performance as compared to the scalar quantization method.
In the vector quantization method, quantization of entire vectors at one time is impossible because a size of a vector table grows too big and searching takes too much time. To solve these problems, a method by which vectors are divided into a plurality of sub-vectors and each sub-vector is independently vector quantized has been developed, and is referred to as a split vector quantization (SVQ) method. As an example, when quantization of a 10th vector using 20 bits is performed at one time, the size of the vector table grows to be approximately 10×220, however, when a lattice vector method is used, in which the 10th vector using 20 bits is divided into two 5th sub-vectors to be quantized, a size of a vector table grows to be only approximately 5×210×2.
A method and a quantizer of quantization of a line spectrum frequency coefficient using block constrained trellis coded quantization (BC-TCQ) and a speech coding system is disclosed in Korean Patent No. 10-486732. In the Korean Patent No. 10-486732, bits allocated to an initial state may be reduced by providing a constraint at both an initial and a final stage in trellis coded quantization (TCQ), in order to provide a method of coded quantization having a good signal to noise ratio (SNR) and to reduce the number and complexity of codebook searching calculations. This also results in a memory size required for quantization of an input signal and coefficient to be minimized.
In spite of the above mentioned merits, conventional TCQ techniques still have a problem that a path having a minimum accumulated distortion is disregarded because only one survivor path is stored at each stage.
Accordingly, a new method of trellis coded quantization capable of effectively searching a path on a trellis having a smaller accumulated distortion, and a quantizer using the method is needed.